/** API 接口请求,请求拦截
 *  API 接口请求配置
 *  wx login
 *  @version 1.0.0
 *  @author fjy
 */
import Fly from "./config/wx";
var uti = require("../utils/util.js");
var fly = new Fly();
const { BaseUrl } = require("../config.js");

//设置超时
fly.config.timeout = 15000;
fly.config.withCredentials = true;
//设置请求基地址
// fly.config.baseURL = '';
fly.config.baseURL = BaseUrl;

//添加响应拦截器
fly.interceptors.response.use(
  (response) => {
    return new Promise((resolve, reject) => {
      wx.hideLoading();
      const res = response.data;
      if (res.code === 200) {
        if(res.msg){
          uti._showToast(res.msg,'success')
        }
        resolve(res);
      } else {
        uti._showToast(res.msg || "获取失败");
        reject(res);
      }
    });
    return response; //请求成功之后将返回值返回
  },
  (err) => {
    console.log(err);
    //请求出错，根据返回状态码判断出错原因
    wx.hideLoading();
    if (err.msg && (err.status || err.status == 0)) {
      if (err.status == 0) {
        uti._showToast("网络异常");
      } else if (err.status == 1) {
        uti._showToast("网络连接超时");
      } else if (err.status == 404) {
        uti._showToast("找不到远程服务器");
      } else if (err.status == 500) {
        uti._showToast("服务器错误");
      } else {
        if (err.msg) {
          config._showToast(err.msg);
        } else {
          config._showToast("获取失败");
        }
      }
    }
    return Promise.reject(err);
  }
);

/*
 *get方法，对应get请求
 *@param {String} url [请求的url地址]
 *@param {Object} params [请求时候携带的参数]
 */
function _get(url, params) {
  return new Promise((resolve, reject) => {
    fly
      .get(url, { ...params })
      .then((res) => {
        resolve(res);
      })
      .catch((err) => {
        reject(err);
      });
  });
}

/*
 *post方法，对应post请求
 *@param {String} url [请求的url地址]
 *@param {Object} params [请求时候携带的参数]
 */
export function _post(url, params) {
  return new Promise((resolve, reject) => {
    fly
      .post(url, {
        ...params,
      })
      .then((res) => {
        resolve(res);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
module.exports = {
  _get,
  _post,
  fly,
};
